package com.hedl.practice.diyJava.gather.study_priority_queue.test;

import com.hedl.practice.diyJava.gather.study_priority_queue.tmp.User;
import com.hedl.practice.diyJava.gather.study_priority_queue.utils.UserComparator;

import java.util.PriorityQueue;
import java.util.Queue;

/**
 * 实现PriorityQueue的关键在于提供的UserComparator对象，它负责比较两个元素的大小（较小的在前）。
 * UserComparator总是把V开头的号码优先返回，只有在开头相同的时候，才比较号码大小。
 */
public class Main {
    public static void main(String[] args) {
        Queue<User> q = new PriorityQueue<>(new UserComparator());
        // 添加3个元素到队列:
        q.offer(new User("Bob", "A10"));
        q.offer(new User("Alice", "A2"));
        q.offer(new User("Boss", "V1"));
        q.offer(new User("Hello","A11"));
        System.out.println(q.poll()); // Boss/V1
        System.out.println(q.poll()); // Bob/A1
        System.out.println(q.poll()); // Alice/A2
        System.out.println(q.poll()); // null,因为队列为空
    }
}
